1. Field of the Invention
The present invention generally relates to migrating data within a data repository, and more particularly to a system and method for providing data migration services.
2. Description of the Related Art
Data migration generally refers to a process of translating data from one format or storage schema to another and/or from one storage device to another. Data migration is frequently necessary when a software application or database management system is upgraded from one version to another (data stored in a current version is often called legacy data) or from one system to an entirely different system.
Usually, a new version of a software application or database management system is not fully compatible with a currently used version of the system. In other words, data formats used by the current version of the system may not comply with the configuration of the upgraded or new system. For example, a new version of a software application system may incorporate different changes, such as a new or modified database schema, new architecture, new storage methods, and so on.
One commonly used method for migrating data is to develop a set of customized programs or scripts that transfer the data. To achieve an effective data migration procedure, an existing and new system's structures are analyzed and defined. The existing system's data are mapped to the new system's data providing a design for the data extraction and data loading. Such a design relates existing data in the database management system to the new system data formats and requirements. Analyses are performed on the existing system as well as on the new system to understand how the systems work, who uses them, what they are used for, how the data in the systems are stored (e.g., files, flat files, tables, etc.) and the like. Such analyses typically involve studying existing documentation (e.g., documentation produced once the application was completed, an original specification, and the like). As system documentation is often incomplete or missing, system developers may have to be contacted to collect necessary information. However, it is common for developers to be spread out to several geographical different locations, or even not be available. Thus, an existing code of the systems may have to be reviewed and documented as well.
Additionally, to prevent data loss if a data migration process fails during its execution (e.g., power failure), the existing system's data must be backed up. Typically, if the data migration process fails or is otherwise interrupted, the process has to be re-started with loss of all data transformation already made before the failure or interruption. Also, failure of the data migration process may corrupt some elements of data in the existing database. Accordingly, data migration frequently becomes a disruptive and time-consuming process.